Язык регулярных выражений создан и оптимизирован для управления текстом. Данный язык включает в себя два основных типа знаков: текстовые символы и метасимволы. Возможности обработки данных с помощью регулярных выражений определяются набором метасимволов.
Распространенными метасимволами являются знаки "?" и "*", используемые в файловой системе DOS для представления любого символа или группы символов. В результате выполнения файловой команды DOS COPY *.DOC A: файловая система копирует любой файл с расширением имени файла .DOC на диск в дисководе A. Метасимвол "*" стоит вместо любого имени файла перед расширением имени файла .DOC. Регулярные выражения во много раз расширяют эту основную идею, предоставляя большой набор метасимволов. Это позволяет использовать очень сложные выражения для сравнения текстов с помощью незначительного количества символов.
Например, регулярное выражение \s2000, примененное к тексту сообщения, сопоставляет все вхождения строки "2000", которым предшествует любой разделитель, например пробел или табуляция.
Примечание. Если используется C++, C# или JScript, необходимо, чтобы специальным знакам перехода, например \s, предшествовала дополнительная обратная косая черта (например, "\\s2000"), которая указывает на то, что обратная косая черта в знаке перехода является escape-знаком. В противном случае обработчик регулярных выражений рассматривает обратную косую черту в выражении\sкак два отдельных оператора. Нет необходимости добавлять обратную косую черту, если используется Visual Basic .NET. При работе с C# можно использовать строки с префиксом @, отключающие переход (например,@"\s2000").
С помощью регулярных выражений осуществляется и более сложный поиск. Например, регулярное выражение (?<char>\w)\k<char> с помощью именованных групп и обратных ссылок ведет поиск соседних парных знаков. Если применить его к строке "I'll have a small coffee", оно найдет совпадения в словах "I'll", "small" и "coffee". (Для получения дополнительных сведений об этом регулярном выражении см. Обратные ссылки.)
В следующих разделах представлен набор метасимволов, которые определяют язык регулярных выражений .NET Framework, а также демонстрируется использование классов регулярных выражений для реализации регулярных выражений в приложениях.